package com.shiwaixiangcun.customer.entity

import com.google.gson.annotations.SerializedName


/**
 * Author   Administrator
 * Date     2018/1/4
 * Desc     eg
 */


data class FamilyCameraInfo(
        @SerializedName("cameraId") val cameraId: Int, //32
        @SerializedName("data") val data: CameraData,
        @SerializedName("deviceId") val deviceId: String, //3K0007APAG00895
        @SerializedName("name") val name: String, //3K0007APAG00895
        @SerializedName("shareCameraNumber") val shareCameraNumber: Any, //null
        @SerializedName("wifi") val wifi: String //swxc
)


data class DeviceBaseEntity<out T>(
        @SerializedName("data") val data: T,
        @SerializedName("message") val message: String, //操作成功
        @SerializedName("responseCode") val responseCode: Int, //1001
        @SerializedName("success") val success: Boolean //true
)


data class DeviceBaseListEntity<out T>(
		@SerializedName("data") val data: List<T>,
		@SerializedName("message") val message: String, //操作成功
		@SerializedName("responseCode") val responseCode: Int, //1001
		@SerializedName("success") val success: Boolean //true
)

data class IntelligentDeviceData(
        @SerializedName("cameraBinding") val cameraBinding: Boolean, //false
        @SerializedName("cameraListDtoList") val cameraListDtoList: List<CameraDto>,
        @SerializedName("watchData") val watchData: WatchData
)

data class CameraDto(
        @SerializedName("data") val data: CameraData,
        @SerializedName("deviceId") val deviceId: String, //3C0798CPAK00867
        @SerializedName("hardwareId") val hardwareId: Long, //124
        @SerializedName("name") val name: String, //垃圾摄像头
        @SerializedName("whetherAdmin") val whetherAdmin: Boolean //true
)

data class FamilyInteraction(
        @SerializedName("cameraInfo") val cameraInfo: List<FamilyCameraInfo>,
        @SerializedName("familyLocation") val familyLocation: String //http://hm.shiwaixiangcun.cn/mc/map/index.htm
)

data class CameraData(
        @SerializedName("ability") val ability: String, //AlarmMD,AudioEncode,AudioTalk,BreathingLight,CK,CloudStorage,DHP2P,DPS,HSEncrypt,LocalStorage,MDS,MDW,PTZ,Panorama,PlaybackByFilename,RD,RegCode,RemoteControl,WLAN
        @SerializedName("baseline") val baseline: String, //IPC
        @SerializedName("brand") val brand: String, //lechange
        @SerializedName("canBeUpgrade") val canBeUpgrade: Boolean, //true
        @SerializedName("channels") val channels: List<Channel>,
        @SerializedName("deviceCatalog") val deviceCatalog: String, //SD
        @SerializedName("deviceId") val deviceId: String, //3C0798CPAK00867
        @SerializedName("deviceModel") val deviceModel: String, //CE-C-TP1
        @SerializedName("name") val name: String, //3C0798CPAK00867
        @SerializedName("status") val status: String, //1
        @SerializedName("version") val version: String //Chn_P_v2.800.0000.0.R.170111
)

data class Channel(
        @SerializedName("alarmStatus") val alarmStatus: Int, //0
        @SerializedName("channelId") val channelId: Int, //0
        @SerializedName("channelName") val channelName: String, //3C0798CPAK00867-1
        @SerializedName("channelOnline") val channelOnline: Boolean, //true
        @SerializedName("channelPicUrl") val channelPicUrl: String, //http://lechangecloud.oss-cn-hangzhou.aliyuncs.com/lechange/3C0798CPAK00867_img/Thumbnail/0_1515123076239.jpg?Expires=1515230415&OSSAccessKeyId=9erUqcEQcPuBIzyM&Signature=RvFFRv%2FX2lA5Y6JFwqoX0jN1rj8%3D
        @SerializedName("csStatus") val csStatus: Int, //-1
        @SerializedName("shareStatus") val shareStatus: Boolean //false


)


data class WatchData(
        @SerializedName("deviceStatus") val deviceStatus: String, //OFFLINE
        @SerializedName("hardwareId") val hardwareId: Long, //111
        @SerializedName("remainingPower") val remainingPower: Int //84
)

data class CameraQRCode(
        val SN: String, val DT: String, val RC: String
)

data class CameraDetail(
        @SerializedName("cameraId") val cameraId: Long, //6
        @SerializedName("data") val data: CameraData,
        @SerializedName("deviceId") val deviceId: String, //3C0798CPAK00867
        @SerializedName("name") val name: String, //垃圾摄像头
        @SerializedName("shareCameraNumber") val shareCameraNumber: Int, //0
        @SerializedName("wifi") val wifi: Any //null
)

data class CameraIsBind(
        @SerializedName("verificationCamera") val verificationCamera: Boolean

)

data class CameraToken(
		@SerializedName("userToken") val verificationCamera: String

)

data class CameraShareInfo(
		@SerializedName("avatar") val avatar: String, //http://resource.shiwaixiangcun.cn/group1/M00/01/8A/rBKx51ox4xyAXYuwAAQoXifssXw12.jpeg
		@SerializedName("customerId") val customerId: Long, //345
		@SerializedName("customerName") val customerName: String, //西门吹雪
		@SerializedName("deviceId") val deviceId: String, //3K0007APAG00895
		@SerializedName("phone") val phone: String //15608222076
)

